package com.weiyuwqj.api.model;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Table(name = "bus_item_invest")
public class BusItemInvest implements Serializable {
    /**
     * 主键	UUID
     */
    @Id
    private Integer id;

    /**
     * 外键	
     */
    @Column(name = "item_id")
    private Integer itemId;

    /**
     * 	
     */
    @Column(name = "user_id")
    private Integer userId;

    /**
     * 投资类型	1-pc 2-APP端 3-WAP端 4-微信端
     */
    @Column(name = "invest_type")
    private Integer investType;

    /**
     * 活期定期 1-定期 2-活期
     */
    @Column(name = "invest_current")
    private Integer investCurrent;

    /**
     * 投资订单号	
     */
    @Column(name = "invest_order")
    private String investOrder;

    /**
     * 投资状态 0-默认状态 1复审通过 2流标或标的作废 3-投资已还款
     */
    @Column(name = "invest_status")
    private Integer investStatus;

    /**
     * 债转状态: 0.未债转 1.已债转
     */
    @Column(name = "debt_transfer_status")
    private Integer debtTransferStatus;

    /**
     * 投资金额	
     */
    @Column(name = "invest_amount")
    private BigDecimal investAmount;

    /**
     * 实际成交金额	
     */
    @Column(name = "invest_deal_amount")
    private BigDecimal investDealAmount;

    /**
     * 应收总额	
     */
    @Column(name = "collect_amount")
    private BigDecimal collectAmount;

    /**
     * 应收本金	
     */
    @Column(name = "collect_principal")
    private BigDecimal collectPrincipal;

    /**
     * 应收利息	
     */
    @Column(name = "collect_interest")
    private BigDecimal collectInterest;

    /**
     * 实际已收总额	做冗余，给客户查看使用，当前收款情况
     */
    @Column(name = "actual_collect_amount")
    private BigDecimal actualCollectAmount;

    /**
     * 实际已收本金	做冗余，给客户查看使用，当前收款情况
     */
    @Column(name = "actual_collect_principal")
    private BigDecimal actualCollectPrincipal;

    /**
     * 实际已收利息	做冗余，给客户查看使用，当前收款情况
     */
    @Column(name = "actual_collect_interest")
    private BigDecimal actualCollectInterest;

    /**
     * 实际未收总额	做冗余，给客户查看使用，当前收款情况
     */
    @Column(name = "actual_uncollect_amount")
    private BigDecimal actualUncollectAmount;

    /**
     * 实际未收本金	做冗余，给客户查看使用，当前收款情况
     */
    @Column(name = "actual_uncollect_principal")
    private BigDecimal actualUncollectPrincipal;

    /**
     * 实际未收利息	做冗余，给客户查看使用，当前收款情况
     */
    @Column(name = "actual_uncollect_interest")
    private BigDecimal actualUncollectInterest;

    /**
     * 加息券收益
     */
    @Column(name = "additional_rate_amount")
    private BigDecimal additionalRateAmount;

    /**
     * 新增IP，支持IPV6	
     */
    private String addip;

    /**
     * 新增时间	
     */
    private Date addtime;

    /**
     * 更新时间	
     */
    private Date updatetime;

    /**
     * 投资时冻结订单号
     */
    private String freezeOrderNo;

    /**
     * 特殊标识1-项目第一个投资人 2-项目最后一个投资人 3-项目单笔投资最高人
     */
    @Column(name = "special_marks")
    private String specialMarks;

    @Column(name = "auto_id")
    private Integer autoId;

    public Integer getAutoId() {
        return autoId;
    }

    public void setAutoId(Integer autoId) {
        this.autoId = autoId;
    }

    public Integer getDebtTransferStatus() {
        return debtTransferStatus;
    }

    public void setDebtTransferStatus(Integer debtTransferStatus) {
        this.debtTransferStatus = debtTransferStatus;
    }

    /**
     * 获取主键	UUID
     *
     * @return id - 主键	UUID
     */
    public Integer getId() {
        return id;
    }

    /**
     * 设置主键	UUID
     *
     * @param id 主键	UUID
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取外键	
     *
     * @return item_id - 外键	
     */
    public Integer getItemId() {
        return itemId;
    }

    /**
     * 设置外键	
     *
     * @param itemId 外键	
     */
    public void setItemId(Integer itemId) {
        this.itemId = itemId;
    }

    /**
     * 获取	
     *
     * @return user_id - 	
     */
    public Integer getUserId() {
        return userId;
    }

    /**
     * 设置	
     *
     * @param userId 	
     */
    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    /**
     * 获取投资类型	1-pc 2-APP端 3-WAP端 4-微信端
     *
     * @return invest_type - 投资类型	1-pc 2-APP端 3-WAP端 4-微信端
     */
    public Integer getInvestType() {
        return investType;
    }

    /**
     * 设置投资类型	1-pc 2-APP端 3-WAP端 4-微信端
     *
     * @param investType 投资类型	1-pc 2-APP端 3-WAP端 4-微信端
     */
    public void setInvestType(Integer investType) {
        this.investType = investType;
    }

    /**
     * 获取活期定期 1-定期 2-活期
     *
     * @return invest_current - 活期定期 1-定期 2-活期
     */
    public Integer getInvestCurrent() {
        return investCurrent;
    }

    /**
     * 设置活期定期 1-定期 2-活期
     *
     * @param investCurrent 活期定期 1-定期 2-活期
     */
    public void setInvestCurrent(Integer investCurrent) {
        this.investCurrent = investCurrent;
    }

    /**
     * 获取投资订单号	
     *
     * @return invest_order - 投资订单号	
     */
    public String getInvestOrder() {
        return investOrder;
    }

    /**
     * 设置投资订单号	
     *
     * @param investOrder 投资订单号	
     */
    public void setInvestOrder(String investOrder) {
        this.investOrder = investOrder;
    }

    /**
     * 获取投资状态 0-默认状态 1复审通过 2流标或标的作废 3-投资已还款
     *
     * @return invest_status - 投资状态 0-默认状态 1复审通过 2流标或标的作废 3-投资已还款
     */
    public Integer getInvestStatus() {
        return investStatus;
    }

    /**
     * 设置投资状态 0-默认状态 1复审通过 2流标或标的作废 3-投资已还款
     *
     * @param investStatus 投资状态 0-默认状态 1复审通过 2流标或标的作废 3-投资已还款
     */
    public void setInvestStatus(Integer investStatus) {
        this.investStatus = investStatus;
    }

    /**
     * 获取投资金额	
     *
     * @return invest_amount - 投资金额	
     */
    public BigDecimal getInvestAmount() {
        return investAmount;
    }

    /**
     * 设置投资金额	
     *
     * @param investAmount 投资金额	
     */
    public void setInvestAmount(BigDecimal investAmount) {
        this.investAmount = investAmount;
    }

    /**
     * 获取实际成交金额	
     *
     * @return invest_deal_amount - 实际成交金额	
     */
    public BigDecimal getInvestDealAmount() {
        return investDealAmount;
    }

    /**
     * 设置实际成交金额	
     *
     * @param investDealAmount 实际成交金额	
     */
    public void setInvestDealAmount(BigDecimal investDealAmount) {
        this.investDealAmount = investDealAmount;
    }

    /**
     * 获取应收总额	
     *
     * @return collect_amount - 应收总额	
     */
    public BigDecimal getCollectAmount() {
        return collectAmount;
    }

    /**
     * 设置应收总额	
     *
     * @param collectAmount 应收总额	
     */
    public void setCollectAmount(BigDecimal collectAmount) {
        this.collectAmount = collectAmount;
    }

    /**
     * 获取应收本金	
     *
     * @return collect_principal - 应收本金	
     */
    public BigDecimal getCollectPrincipal() {
        return collectPrincipal;
    }

    /**
     * 设置应收本金	
     *
     * @param collectPrincipal 应收本金	
     */
    public void setCollectPrincipal(BigDecimal collectPrincipal) {
        this.collectPrincipal = collectPrincipal;
    }

    /**
     * 获取应收利息	
     *
     * @return collect_interest - 应收利息	
     */
    public BigDecimal getCollectInterest() {
        return collectInterest;
    }

    /**
     * 设置应收利息	
     *
     * @param collectInterest 应收利息	
     */
    public void setCollectInterest(BigDecimal collectInterest) {
        this.collectInterest = collectInterest;
    }

    /**
     * 获取实际已收总额	做冗余，给客户查看使用，当前收款情况
     *
     * @return actual_collect_amount - 实际已收总额	做冗余，给客户查看使用，当前收款情况
     */
    public BigDecimal getActualCollectAmount() {
        return actualCollectAmount;
    }

    /**
     * 设置实际已收总额	做冗余，给客户查看使用，当前收款情况
     *
     * @param actualCollectAmount 实际已收总额	做冗余，给客户查看使用，当前收款情况
     */
    public void setActualCollectAmount(BigDecimal actualCollectAmount) {
        this.actualCollectAmount = actualCollectAmount;
    }

    /**
     * 获取实际已收本金	做冗余，给客户查看使用，当前收款情况
     *
     * @return actual_collect_principal - 实际已收本金	做冗余，给客户查看使用，当前收款情况
     */
    public BigDecimal getActualCollectPrincipal() {
        return actualCollectPrincipal;
    }

    /**
     * 设置实际已收本金	做冗余，给客户查看使用，当前收款情况
     *
     * @param actualCollectPrincipal 实际已收本金	做冗余，给客户查看使用，当前收款情况
     */
    public void setActualCollectPrincipal(BigDecimal actualCollectPrincipal) {
        this.actualCollectPrincipal = actualCollectPrincipal;
    }

    /**
     * 获取实际已收利息	做冗余，给客户查看使用，当前收款情况
     *
     * @return actual_collect_interest - 实际已收利息	做冗余，给客户查看使用，当前收款情况
     */
    public BigDecimal getActualCollectInterest() {
        return actualCollectInterest;
    }

    /**
     * 设置实际已收利息	做冗余，给客户查看使用，当前收款情况
     *
     * @param actualCollectInterest 实际已收利息	做冗余，给客户查看使用，当前收款情况
     */
    public void setActualCollectInterest(BigDecimal actualCollectInterest) {
        this.actualCollectInterest = actualCollectInterest;
    }

    /**
     * 获取实际未收总额	做冗余，给客户查看使用，当前收款情况
     *
     * @return actual_uncollect_amount - 实际未收总额	做冗余，给客户查看使用，当前收款情况
     */
    public BigDecimal getActualUncollectAmount() {
        return actualUncollectAmount;
    }

    /**
     * 设置实际未收总额	做冗余，给客户查看使用，当前收款情况
     *
     * @param actualUncollectAmount 实际未收总额	做冗余，给客户查看使用，当前收款情况
     */
    public void setActualUncollectAmount(BigDecimal actualUncollectAmount) {
        this.actualUncollectAmount = actualUncollectAmount;
    }

    /**
     * 获取实际未收本金	做冗余，给客户查看使用，当前收款情况
     *
     * @return actual_uncollect_principal - 实际未收本金	做冗余，给客户查看使用，当前收款情况
     */
    public BigDecimal getActualUncollectPrincipal() {
        return actualUncollectPrincipal;
    }

    /**
     * 设置实际未收本金	做冗余，给客户查看使用，当前收款情况
     *
     * @param actualUncollectPrincipal 实际未收本金	做冗余，给客户查看使用，当前收款情况
     */
    public void setActualUncollectPrincipal(BigDecimal actualUncollectPrincipal) {
        this.actualUncollectPrincipal = actualUncollectPrincipal;
    }

    /**
     * 获取实际未收利息	做冗余，给客户查看使用，当前收款情况
     *
     * @return actual_uncollect_interest - 实际未收利息	做冗余，给客户查看使用，当前收款情况
     */
    public BigDecimal getActualUncollectInterest() {
        return actualUncollectInterest;
    }

    /**
     * 设置实际未收利息	做冗余，给客户查看使用，当前收款情况
     *
     * @param actualUncollectInterest 实际未收利息	做冗余，给客户查看使用，当前收款情况
     */
    public void setActualUncollectInterest(BigDecimal actualUncollectInterest) {
        this.actualUncollectInterest = actualUncollectInterest;
    }

    /**
     * 获取加息券收益
     *
     * @return additional_rate_amount - 加息券收益
     */
    public BigDecimal getAdditionalRateAmount() {
        return additionalRateAmount;
    }

    /**
     * 设置加息券收益
     *
     * @param additionalRateAmount 加息券收益
     */
    public void setAdditionalRateAmount(BigDecimal additionalRateAmount) {
        this.additionalRateAmount = additionalRateAmount;
    }

    /**
     * 获取新增IP，支持IPV6	
     *
     * @return addip - 新增IP，支持IPV6	
     */
    public String getAddip() {
        return addip;
    }

    /**
     * 设置新增IP，支持IPV6	
     *
     * @param addip 新增IP，支持IPV6	
     */
    public void setAddip(String addip) {
        this.addip = addip;
    }

    /**
     * 获取新增时间	
     *
     * @return addtime - 新增时间	
     */
    public Date getAddtime() {
        return addtime;
    }

    /**
     * 设置新增时间	
     *
     * @param addtime 新增时间	
     */
    public void setAddtime(Date addtime) {
        this.addtime = addtime;
    }

    /**
     * 获取更新时间	
     *
     * @return updatetime - 更新时间	
     */
    public Date getUpdatetime() {
        return updatetime;
    }

    /**
     * 设置更新时间	
     *
     * @param updatetime 更新时间	
     */
    public void setUpdatetime(Date updatetime) {
        this.updatetime = updatetime;
    }

    /**
     * 获取特殊标识1-项目第一个投资人 2-项目最后一个投资人 3-项目单笔投资最高人
     *
     * @return special_marks - 特殊标识1-项目第一个投资人 2-项目最后一个投资人 3-项目单笔投资最高人
     */
    public String getSpecialMarks() {
        return specialMarks;
    }

    /**
     * 设置特殊标识1-项目第一个投资人 2-项目最后一个投资人 3-项目单笔投资最高人
     *
     * @param specialMarks 特殊标识1-项目第一个投资人 2-项目最后一个投资人 3-项目单笔投资最高人
     */
    public void setSpecialMarks(String specialMarks) {
        this.specialMarks = specialMarks;
    }

    public String getFreezeOrderNo() {
        return freezeOrderNo;
    }

    public void setFreezeOrderNo(String freezeOrderNo) {
        this.freezeOrderNo = freezeOrderNo;
    }
}